using System.Collections.Generic;
using System.Text;
using OracleInternal.SqlAndPlsqlParser.LocalParsing;

namespace OracleInternal.SqlAndPlsqlParser.RuleProcessors.ODPCommands
{
	internal static class OracleMbEarleyExprNNRuleMultiProcessors
	{
		public static OracleMbEarleyRuleMultiProcessorAddItem[] s_vRuleProcessorItems;

		static OracleMbEarleyExprNNRuleMultiProcessors()
		{
			OracleMbEarleyRuleMultiProcessorAddItem[] array = new OracleMbEarleyRuleMultiProcessorAddItem[60];
			OracleMbEarleyRuleMultiProcessorAddItem oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "expr",
				m_vRHSSymbols = new string[1]
				{
					"expr#"
				},
				m_vRuleProcessor = Process_Expr_Expr_StartWithRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllRulesStartingWith
			};
			array[0] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "expr",
				m_vRHSSymbols = new string[1]
				{
					"attribute"
				},
				m_vRuleProcessor = Process_Expr_Attribute_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[1] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "expr#",
				m_vRHSSymbols = new string[1]
				{
					"bind_var"
				},
				m_vRuleProcessor = Process_Expr_BindVar_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[2] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "expr#",
				m_vRHSSymbols = new string[1]
				{
					"case_expression"
				},
				m_vRuleProcessor = Process_Expr_CaseExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[3] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "expr#",
				m_vRHSSymbols = new string[1]
				{
					"compound_expression"
				},
				m_vRuleProcessor = Process_Expr_CompoundExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[4] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "expr#",
				m_vRHSSymbols = new string[1]
				{
					"cursor_expression"
				},
				m_vRuleProcessor = Process_Expr_CursorExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[5] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "expr#",
				m_vRHSSymbols = new string[1]
				{
					"datetime_expression"
				},
				m_vRuleProcessor = Process_Expr_DateTimeExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[6] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "expr#",
				m_vRHSSymbols = new string[1]
				{
					"function_expression"
				},
				m_vRuleProcessor = Process_Expr_FunctionExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[7] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "expr#",
				m_vRHSSymbols = new string[1]
				{
					"interval_expression"
				},
				m_vRuleProcessor = Process_Expr_IntervalExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[8] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "expr#",
				m_vRHSSymbols = new string[1]
				{
					"model_expression"
				},
				m_vRuleProcessor = Process_Expr_ModelExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[9] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "expr#",
				m_vRHSSymbols = new string[1]
				{
					"multiset_expression"
				},
				m_vRuleProcessor = Process_Expr_MultisetExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[10] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "expr#",
				m_vRHSSymbols = new string[1]
				{
					"object_access_expression"
				},
				m_vRuleProcessor = Process_Expr_ObjectAccessExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[11] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "expr#",
				m_vRHSSymbols = new string[1]
				{
					"scalar_subquery_expression"
				},
				m_vRuleProcessor = Process_Expr_ScalarSubqueryExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[12] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "expr#",
				m_vRHSSymbols = new string[1]
				{
					"simple_expression"
				},
				m_vRuleProcessor = Process_Expr_SimpleExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[13] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "expr#",
				m_vRHSSymbols = new string[1]
				{
					"type_constructor_expression"
				},
				m_vRuleProcessor = Process_Expr_TypeConstructorExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[14] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "compound_expression",
				m_vRHSSymbols = new string[2]
				{
					"compound_expression",
					"expr"
				},
				m_vRuleProcessor = Process_CompoundExpression_Expr_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[15] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "compound_expression",
				m_vRHSSymbols = new string[3]
				{
					"'('",
					"expr",
					"')'"
				},
				m_vRuleProcessor = Process_CompoundExpression_LEFT_PARENTHESIS_Expr_RIGHT_PARENTHESIS_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[16] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "compound_expression",
				m_vRHSSymbols = new string[3]
				{
					"expr",
					"compound_expression",
					"expr"
				},
				m_vRuleProcessor = Process_CompoundExpression_Expr_CompoundExpression_Expr_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[17] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "compound_expression",
				m_vRHSSymbols = new string[1]
				{
					"'*'"
				},
				m_vRuleProcessor = Process_CompoundExpression_GetIdentifier_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[18] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "compound_expression",
				m_vRHSSymbols = new string[1]
				{
					"'+'"
				},
				m_vRuleProcessor = Process_CompoundExpression_GetIdentifier_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[19] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "compound_expression",
				m_vRHSSymbols = new string[1]
				{
					"'-'"
				},
				m_vRuleProcessor = Process_CompoundExpression_GetIdentifier_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[20] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "compound_expression",
				m_vRHSSymbols = new string[1]
				{
					"'/'"
				},
				m_vRuleProcessor = Process_CompoundExpression_GetIdentifier_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[21] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "compound_expression",
				m_vRHSSymbols = new string[2]
				{
					"'|'",
					"'|'"
				},
				m_vRuleProcessor = Process_CompoundExpression_CONCATENATE_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[22] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "compound_expression",
				m_vRHSSymbols = new string[1]
				{
					"'PRIOR'"
				},
				m_vRuleProcessor = Process_CompoundExpression_GetIdentifier_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[23] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "datetime_expression",
				m_vRHSSymbols = new string[3]
				{
					"expr",
					"'AT'",
					"datetime_expression"
				},
				m_vRuleProcessor = Process_DatetimeExpression_Expr_AT_DatetimeExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[24] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "datetime_expression",
				m_vRHSSymbols = new string[1]
				{
					"'LOCAL'"
				},
				m_vRuleProcessor = Process_DatetimeExpression_LOCAL_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[25] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "datetime_expression",
				m_vRHSSymbols = new string[3]
				{
					"'TIME'",
					"'ZONE'",
					"datetime_expression"
				},
				m_vRuleProcessor = Process_DatetimeExpression_TIME_ZONE_DatetimeExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[26] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "datetime_expression",
				m_vRHSSymbols = new string[1]
				{
					"'DBTIMEZONE'"
				},
				m_vRuleProcessor = Process_DatetimeExpression_DBTIMEZONE_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[27] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "datetime_expression",
				m_vRHSSymbols = new string[1]
				{
					"expr"
				},
				m_vRuleProcessor = Process_DatetimeExpression_Expr_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[28] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "datetime_expression",
				m_vRHSSymbols = new string[1]
				{
					"string_literal"
				},
				m_vRuleProcessor = Process_DatetimeExpression_StringLiteral_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[29] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "function_expression",
				m_vRHSSymbols = new string[1]
				{
					"function"
				},
				m_vRuleProcessor = Process_FunctionExpression_Function_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[30] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "function_expression",
				m_vRHSSymbols = new string[1]
				{
					"function_call"
				},
				m_vRuleProcessor = Process_FunctionExpression_FunctionCall_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[31] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_expression",
				m_vRHSSymbols = new string[1]
				{
					"interval_day_to_second"
				},
				m_vRuleProcessor = Process_IntervalExpression_IntervalDayToSecond_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[32] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_expression",
				m_vRHSSymbols = new string[1]
				{
					"interval_year_to_month"
				},
				m_vRuleProcessor = Process_IntervalExpression_IntervalYearToMonth_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[33] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_expression",
				m_vRHSSymbols = new string[6]
				{
					"'('",
					"expr",
					"'-'",
					"expr",
					"')'",
					"interval_expression"
				},
				m_vRuleProcessor = Process_IntervalExpression_LEFT_PARENTHESIS_Expr_DASH_Expr_RIGHT_PARENTHESIS_IntervalExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[34] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_expression",
				m_vRHSSymbols = new string[3]
				{
					"'DAY'",
					"'TO'",
					"'SECOND'"
				},
				m_vRuleProcessor = Process_IntervalExpression_DAY_TO_SECOND_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[35] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_expression",
				m_vRHSSymbols = new string[3]
				{
					"'YEAR'",
					"'TO'",
					"'MONTH'"
				},
				m_vRuleProcessor = Process_IntervalExpression_YEAR_TO_MONTH_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[36] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_expression",
				m_vRHSSymbols = new string[4]
				{
					"'DAY'",
					"'TO'",
					"'SECOND'",
					"interval_expression"
				},
				m_vRuleProcessor = Process_IntervalExpression_DAY_TO_SECOND_IntervalExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[37] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_expression",
				m_vRHSSymbols = new string[4]
				{
					"'DAY'",
					"interval_expression",
					"'TO'",
					"'SECOND'"
				},
				m_vRuleProcessor = Process_IntervalExpression_DAY_IntervalExpression_TO_SECOND_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[38] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_expression",
				m_vRHSSymbols = new string[4]
				{
					"'YEAR'",
					"interval_expression",
					"'TO'",
					"'MONTH'"
				},
				m_vRuleProcessor = Process_IntervalExpression_YEAR_IntervalExpression_TO_MONTH_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[39] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_expression",
				m_vRHSSymbols = new string[5]
				{
					"'DAY'",
					"interval_expression",
					"'TO'",
					"'SECOND'",
					"interval_expression"
				},
				m_vRuleProcessor = Process_IntervalExpression_DAY_IntervalExpression_TO_SECOND_IntervalExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[40] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_expression",
				m_vRHSSymbols = new string[3]
				{
					"'('",
					"digits",
					"')'"
				},
				m_vRuleProcessor = Process_IntervalExpression_LEFT_PARENTHESIS_Digits_RIGHT_PARENTHESIS_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[41] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_day_to_second",
				m_vRHSSymbols = new string[3]
				{
					"'INTERVAL'",
					"string_literal",
					"interval_day_to_second"
				},
				m_vRuleProcessor = Process_IntervalDayToSecond_INTERVAL_StringLiteral_IntervalDayToSecond_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[42] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_day_to_second",
				m_vRHSSymbols = new string[5]
				{
					"'INTERVAL'",
					"string_literal",
					"interval_day_to_second",
					"'TO'",
					"interval_day_to_second"
				},
				m_vRuleProcessor = Process_IntervalDayToSecond_INTERVAL_StringLiteral_IntervalDayToSecond_TO_IntervalDayToSecond_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[43] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_day_to_second",
				m_vRHSSymbols = new string[3]
				{
					"'('",
					"digits",
					"')'"
				},
				m_vRuleProcessor = Process_IntervalDayToSecond_LEFT_PARENTHESIS_Digits_RIGHT_PARENTHESIS_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[44] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_day_to_second",
				m_vRHSSymbols = new string[5]
				{
					"'('",
					"digits",
					"','",
					"digits",
					"')'"
				},
				m_vRuleProcessor = Process_IntervalDayToSecond_LEFT_PARENTHESIS_Digits_COMMA_Digits_RIGHT_PARENTHESIS_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[45] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_day_to_second",
				m_vRHSSymbols = new string[1]
				{
					"'DAY'"
				},
				m_vRuleProcessor = Process_IntervalDayToSecond_GetIdentifier_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[46] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_day_to_second",
				m_vRHSSymbols = new string[1]
				{
					"'HOUR'"
				},
				m_vRuleProcessor = Process_IntervalDayToSecond_GetIdentifier_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[47] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_day_to_second",
				m_vRHSSymbols = new string[1]
				{
					"'MINUTE'"
				},
				m_vRuleProcessor = Process_IntervalDayToSecond_GetIdentifier_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[48] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_day_to_second",
				m_vRHSSymbols = new string[1]
				{
					"'SECOND'"
				},
				m_vRuleProcessor = Process_IntervalDayToSecond_GetIdentifier_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[49] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_day_to_second",
				m_vRHSSymbols = new string[2]
				{
					"'SECOND'",
					"interval_day_to_second"
				},
				m_vRuleProcessor = Process_IntervalDayToSecond_SECOND_IntervalDayToSecond_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[50] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_day_to_second",
				m_vRHSSymbols = new string[1]
				{
					"interval_day_to_second"
				},
				m_vRuleProcessor = Process_IntervalDayToSecond_IntervalDayToSecond_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[51] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_day_to_second",
				m_vRHSSymbols = new string[2]
				{
					"interval_day_to_second",
					"interval_day_to_second"
				},
				m_vRuleProcessor = Process_IntervalDayToSecond_IntervalDayToSecond_IntervalDayToSecond_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[52] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_year_to_month",
				m_vRHSSymbols = new string[3]
				{
					"'INTERVAL'",
					"string_literal",
					"interval_year_to_month"
				},
				m_vRuleProcessor = Process_IntervalYearToMonth_INTERVAL_StringLiteral_IntervalYearToMonth_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[53] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_year_to_month",
				m_vRHSSymbols = new string[4]
				{
					"'INTERVAL'",
					"string_literal",
					"interval_year_to_month",
					"interval_year_to_month"
				},
				m_vRuleProcessor = Process_IntervalYearToMonth_INTERVAL_StringLiteral_IntervalYearToMonth_IntervalYearToMonth_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[54] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_year_to_month",
				m_vRHSSymbols = new string[5]
				{
					"'INTERVAL'",
					"string_literal",
					"interval_year_to_month",
					"'TO'",
					"interval_year_to_month"
				},
				m_vRuleProcessor = Process_IntervalYearToMonth_INTERVAL_StringLiteral_IntervalYearToMonth_TO_IntervalYearToMonth_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[55] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_year_to_month",
				m_vRHSSymbols = new string[6]
				{
					"'INTERVAL'",
					"string_literal",
					"interval_year_to_month",
					"interval_year_to_month",
					"'TO'",
					"interval_year_to_month"
				},
				m_vRuleProcessor = Process_IntervalYearToMonth_INTERVAL_StringLiteral_IntervalYearToMonth_IntervalYearToMonth_TO_IntervalYearToMonth_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[56] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_year_to_month",
				m_vRHSSymbols = new string[1]
				{
					"'MONTH'"
				},
				m_vRuleProcessor = Process_IntervalYearToMonth_GetIdentifier_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[57] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_year_to_month",
				m_vRHSSymbols = new string[1]
				{
					"'YEAR'"
				},
				m_vRuleProcessor = Process_IntervalYearToMonth_GetIdentifier_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[58] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "interval_year_to_month",
				m_vRHSSymbols = new string[3]
				{
					"'('",
					"digits",
					"')'"
				},
				m_vRuleProcessor = Process_IntervalYearToMonth_LEFT_PARENTHESIS_Digits_RIGHT_PARENTHESIS_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[59] = oracleMbEarleyRuleMultiProcessorAddItem;
			s_vRuleProcessorItems = array;
		}

		public static object Process_Expr_Expr_StartWithRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			object obj = null;
			if (ctx.CurrentRule.IsUnary)
			{
				return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			}
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_Expr_Attribute_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_Expr_BindVar_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpBindVarExpression oracleLpBindVarExpression = new OracleLpBindVarExpression(null);
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("bind_var");
			oracleLpBindVarExpression.BindParameter = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx) as OracleLpBindParameter;
			ctx.RuleProcessorTable = ruleProcessorTable;
			return oracleLpBindVarExpression;
		}

		public static object Process_Expr_CaseExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			_ = ctx.RuleProcessorTable;
			OracleLpExpression result = new OracleLpExpression(null)
			{
				ExpressionType = OracleLpExpressionType.CASE_EXPRESSION
			};
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			return result;
		}

		public static object Process_Expr_CompoundExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_Expr_CursorExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("cursor_expression");
			object result = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			ctx.RuleProcessorTable = ruleProcessorTable;
			return result;
		}

		public static object Process_Expr_DateTimeExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_Expr_FunctionExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_Expr_IntervalExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_Expr_ModelExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("model_expression");
			object result = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			ctx.RuleProcessorTable = ruleProcessorTable;
			return result;
		}

		public static object Process_Expr_MultisetExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("multiset_expression");
			object result = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			ctx.RuleProcessorTable = ruleProcessorTable;
			return result;
		}

		public static object Process_Expr_ObjectAccessExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("object_access_expression");
			object result = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			ctx.RuleProcessorTable = ruleProcessorTable;
			return result;
		}

		public static object Process_Expr_ScalarSubqueryExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("scalar_subquery_expression");
			object result = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			ctx.RuleProcessorTable = ruleProcessorTable;
			return result;
		}

		public static object Process_Expr_SimpleExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("simple_expression");
			object result = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			ctx.RuleProcessorTable = ruleProcessorTable;
			return result;
		}

		public static object Process_Expr_TypeConstructorExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("type_constructor_expression");
			object result = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			ctx.RuleProcessorTable = ruleProcessorTable;
			return result;
		}

		public static object Process_CompoundExpression_Expr_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpCompoundUnaryExpression oracleLpCompoundUnaryExpression = new OracleLpCompoundUnaryExpression(null);
			string text = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx) as string;
			switch (text.ToUpper())
			{
			case "+":
				oracleLpCompoundUnaryExpression.UnaryOperator = OracleLpCompoundExpressionUnaryOperator.PLUS;
				break;
			case "-":
				oracleLpCompoundUnaryExpression.UnaryOperator = OracleLpCompoundExpressionUnaryOperator.MINUS;
				break;
			case "PRIOR":
				oracleLpCompoundUnaryExpression.UnaryOperator = OracleLpCompoundExpressionUnaryOperator.PRIOR;
				break;
			}
			oracleLpCompoundUnaryExpression.Operand = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx) as OracleLpExpression;
			return oracleLpCompoundUnaryExpression;
		}

		public static object Process_CompoundExpression_LEFT_PARENTHESIS_Expr_RIGHT_PARENTHESIS_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			return new OracleLpCompoundEvaluateExpression(null)
			{
				Operand = (OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx) as OracleLpExpression)
			};
		}

		public static object Process_CompoundExpression_Expr_CompoundExpression_Expr_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpCompoundBinaryExpression oracleLpCompoundBinaryExpression = new OracleLpCompoundBinaryExpression(null);
			oracleLpCompoundBinaryExpression.LeftOperand = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx) as OracleLpExpression;
			string text = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx) as string;
			oracleLpCompoundBinaryExpression.RightOperand = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx) as OracleLpExpression;
			switch (text)
			{
			case "*":
				oracleLpCompoundBinaryExpression.BinaryOperator = OracleLpCompoundExpressionBinaryOperator.MULTIPLY;
				break;
			case "/":
				oracleLpCompoundBinaryExpression.BinaryOperator = OracleLpCompoundExpressionBinaryOperator.DIVIDE;
				break;
			case "+":
				oracleLpCompoundBinaryExpression.BinaryOperator = OracleLpCompoundExpressionBinaryOperator.ADD;
				break;
			case "-":
				oracleLpCompoundBinaryExpression.BinaryOperator = OracleLpCompoundExpressionBinaryOperator.SUBTRACT;
				break;
			case "||":
				oracleLpCompoundBinaryExpression.BinaryOperator = OracleLpCompoundExpressionBinaryOperator.CONCATENATE;
				break;
			}
			return oracleLpCompoundBinaryExpression;
		}

		public static object Process_CompoundExpression_GetIdentifier_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return ctx.Tokens[ctx.CurrentParseNode.From].m_vContent;
		}

		public static object Process_CompoundExpression_CONCATENATE_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return "||";
		}

		public static object Process_DatetimeExpression_Expr_AT_DatetimeExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpDatetimeExpression oracleLpDatetimeExpression = new OracleLpDatetimeExpression(null);
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			List<LexerToken> tokens = ctx.Tokens;
			ParseNode currentParseNode = ctx.CurrentParseNode;
			int vBegin = tokens[currentParseNode.From].m_vBegin;
			int vEnd = tokens[currentParseNode.To - 1].m_vEnd;
			oracleLpDatetimeExpression.Text = new OracleLpTextFragment(ctx.Script, vBegin, vEnd - vBegin);
			oracleLpDatetimeExpression.Datetime = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx) as OracleLpExpression;
			OracleLpExpression ao = (OracleLpExpression)ctx.GetActiveObject(11);
			ctx.SetActiveObject(11, oracleLpDatetimeExpression);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx);
			ctx.SetActiveObject(11, ao);
			return oracleLpDatetimeExpression;
		}

		public static object Process_DatetimeExpression_LOCAL_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpDatetimeExpression obj = (OracleLpDatetimeExpression)ctx.GetActiveObject(11);
			obj.DatetimeExpessionType = OracleLpDatetimeExpressionType.LOCAL;
			return obj;
		}

		public static object Process_DatetimeExpression_TIME_ZONE_DatetimeExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpDatetimeExpression oracleLpDatetimeExpression = (OracleLpDatetimeExpression)ctx.GetActiveObject(11);
			oracleLpDatetimeExpression.DatetimeExpessionType = OracleLpDatetimeExpressionType.TIME_ZONE;
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpTimeZoneExpression ao = (oracleLpDatetimeExpression.TimeZone = new OracleLpTimeZoneExpression(oracleLpDatetimeExpression));
			ctx.SetActiveObject(11, ao);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx);
			ctx.SetActiveObject(11, oracleLpDatetimeExpression);
			return oracleLpDatetimeExpression;
		}

		public static object Process_DatetimeExpression_DBTIMEZONE_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpTimeZoneExpression obj = (OracleLpTimeZoneExpression)ctx.GetActiveObject(11);
			obj.TZExpressionType = OracleLpTimeZoneExpressionType.DBTIMEZONE;
			return obj;
		}

		public static object Process_DatetimeExpression_Expr_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpTimeZoneExpression obj = (OracleLpTimeZoneExpression)ctx.GetActiveObject(11);
			obj.TZExpressionType = OracleLpTimeZoneExpressionType.EXPRESSION;
			obj.TZExpression = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx) as OracleLpExpression;
			return obj;
		}

		public static object Process_DatetimeExpression_StringLiteral_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpTimeZoneExpression obj = (OracleLpTimeZoneExpression)ctx.GetActiveObject(11);
			obj.TZExpressionType = OracleLpTimeZoneExpressionType.STRING_LITERAL;
			obj.TZLiteral = ctx.Tokens[ctx.CurrentParseNode.From].m_vContent;
			return obj;
		}

		public static object Process_FunctionExpression_Function_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpFunctionExpression oracleLpFunctionExpression = new OracleLpFunctionExpression(null);
			List<LexerToken> tokens = ctx.Tokens;
			ParseNode currentParseNode = ctx.CurrentParseNode;
			int vBegin = tokens[currentParseNode.From].m_vBegin;
			oracleLpFunctionExpression.Text = new OracleLpTextFragment(length: tokens[currentParseNode.To].m_vEnd - vBegin, text: ctx.Script, start: vBegin);
			return oracleLpFunctionExpression;
		}

		public static object Process_FunctionExpression_FunctionCall_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpFunctionExpression oracleLpFunctionExpression = new OracleLpFunctionExpression(null);
			List<LexerToken> tokens = ctx.Tokens;
			ParseNode currentParseNode = ctx.CurrentParseNode;
			int vBegin = tokens[currentParseNode.From].m_vBegin;
			oracleLpFunctionExpression.Text = new OracleLpTextFragment(length: tokens[currentParseNode.To].m_vEnd - vBegin, text: ctx.Script, start: vBegin);
			return oracleLpFunctionExpression;
		}

		public static object Process_IntervalExpression_IntervalDayToSecond_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpIntervalExpression oracleLpIntervalExpression = new OracleLpIntervalExpression(null);
			oracleLpIntervalExpression.IntervalExpessionType = OracleLpIntervalExpressionType.DAY_TO_SECOND;
			List<LexerToken> tokens = ctx.Tokens;
			ParseNode currentParseNode = ctx.CurrentParseNode;
			int vBegin = tokens[currentParseNode.From].m_vBegin;
			int vEnd = tokens[currentParseNode.To - 1].m_vEnd;
			oracleLpIntervalExpression.Text = new OracleLpTextFragment(ctx.Script, vBegin, vEnd - vBegin);
			OracleLpExpression ao = (OracleLpExpression)ctx.GetActiveObject(11);
			ctx.SetActiveObject(11, oracleLpIntervalExpression);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			ctx.SetActiveObject(11, ao);
			return oracleLpIntervalExpression;
		}

		public static object Process_IntervalExpression_IntervalYearToMonth_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpIntervalExpression oracleLpIntervalExpression = new OracleLpIntervalExpression(null);
			oracleLpIntervalExpression.IntervalExpessionType = OracleLpIntervalExpressionType.YEAR_TO_MONTH;
			List<LexerToken> tokens = ctx.Tokens;
			ParseNode currentParseNode = ctx.CurrentParseNode;
			int vBegin = tokens[currentParseNode.From].m_vBegin;
			int vEnd = tokens[currentParseNode.To - 1].m_vEnd;
			oracleLpIntervalExpression.Text = new OracleLpTextFragment(ctx.Script, vBegin, vEnd - vBegin);
			OracleLpExpression ao = (OracleLpExpression)ctx.GetActiveObject(11);
			ctx.SetActiveObject(11, oracleLpIntervalExpression);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			ctx.SetActiveObject(11, ao);
			return oracleLpIntervalExpression;
		}

		public static object Process_IntervalExpression_LEFT_PARENTHESIS_Expr_DASH_Expr_RIGHT_PARENTHESIS_IntervalExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			stringBuilder.Append("(");
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx));
			stringBuilder.Append("-");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[3], 0, -1, ctx));
			ctx.RuleProcessorTable = ruleProcessorTable;
			stringBuilder.Append(")");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[5], 0, -1, ctx));
			return stringBuilder.ToString();
		}

		public static object Process_IntervalExpression_DAY_TO_SECOND_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return "DAY TO SECOND";
		}

		public static object Process_IntervalExpression_YEAR_TO_MONTH_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return "YEAR TO MONTH";
		}

		public static object Process_IntervalExpression_DAY_TO_SECOND_IntervalExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			stringBuilder.Append("DAY TO SECOND ");
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[3], 0, -1, ctx));
			return stringBuilder.ToString();
		}

		public static object Process_IntervalExpression_DAY_IntervalExpression_TO_SECOND_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			stringBuilder.Append("DAY ");
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx));
			stringBuilder.Append(" TO SECOND");
			return stringBuilder.ToString();
		}

		public static object Process_IntervalExpression_YEAR_IntervalExpression_TO_MONTH_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			stringBuilder.Append("YEAR ");
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx));
			stringBuilder.Append(" TO MONTH");
			return stringBuilder.ToString();
		}

		public static object Process_IntervalExpression_DAY_IntervalExpression_TO_SECOND_IntervalExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			stringBuilder.Append("DAY ");
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx));
			stringBuilder.Append(" TO SECOND");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[4], 0, -1, ctx));
			return stringBuilder.ToString();
		}

		public static object Process_IntervalExpression_LEFT_PARENTHESIS_Digits_RIGHT_PARENTHESIS_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append("(");
			stringBuilder.Append(ctx.Tokens[list[1].From].m_vContent);
			stringBuilder.Append(")");
			return stringBuilder.ToString();
		}

		public static object Process_IntervalDayToSecond_INTERVAL_StringLiteral_IntervalDayToSecond_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append("INTERVAL ");
			stringBuilder.Append(ctx.Tokens[list[1].From].m_vContent);
			stringBuilder.Append(" ");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx));
			return stringBuilder.ToString();
		}

		public static object Process_IntervalDayToSecond_INTERVAL_StringLiteral_IntervalDayToSecond_TO_IntervalDayToSecond_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append("INTERVAL ");
			stringBuilder.Append(ctx.Tokens[list[1].From].m_vContent);
			stringBuilder.Append(" ");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx));
			stringBuilder.Append(" TO ");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[4], 0, -1, ctx));
			return stringBuilder.ToString();
		}

		public static object Process_IntervalDayToSecond_LEFT_PARENTHESIS_Digits_RIGHT_PARENTHESIS_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append("(");
			stringBuilder.Append(ctx.Tokens[list[1].From].m_vContent);
			stringBuilder.Append(")");
			return stringBuilder.ToString();
		}

		public static object Process_IntervalDayToSecond_LEFT_PARENTHESIS_Digits_COMMA_Digits_RIGHT_PARENTHESIS_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append("(");
			stringBuilder.Append(ctx.Tokens[list[1].From].m_vContent);
			stringBuilder.Append(",");
			stringBuilder.Append(ctx.Tokens[list[3].From].m_vContent);
			stringBuilder.Append(")");
			return stringBuilder.ToString();
		}

		public static object Process_IntervalDayToSecond_GetIdentifier_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return ctx.Tokens[ctx.CurrentParseNode.From].m_vContent;
		}

		public static object Process_IntervalDayToSecond_SECOND_IntervalDayToSecond_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append("SECOND ");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx));
			return stringBuilder.ToString();
		}

		public static object Process_IntervalDayToSecond_IntervalDayToSecond_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_IntervalDayToSecond_IntervalDayToSecond_IntervalDayToSecond_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx));
			stringBuilder.Append(" ");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx));
			return stringBuilder.ToString();
		}

		public static object Process_IntervalYearToMonth_INTERVAL_StringLiteral_IntervalYearToMonth_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append("INTERVAL ");
			stringBuilder.Append(ctx.Tokens[list[1].From].m_vContent);
			stringBuilder.Append(" ");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx));
			return stringBuilder.ToString();
		}

		public static object Process_IntervalYearToMonth_INTERVAL_StringLiteral_IntervalYearToMonth_IntervalYearToMonth_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append("INTERVAL ");
			stringBuilder.Append(ctx.Tokens[list[1].From].m_vContent);
			stringBuilder.Append(" ");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx));
			stringBuilder.Append(" ");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[3], 0, -1, ctx));
			return stringBuilder.ToString();
		}

		public static object Process_IntervalYearToMonth_INTERVAL_StringLiteral_IntervalYearToMonth_TO_IntervalYearToMonth_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append("INTERVAL ");
			stringBuilder.Append(ctx.Tokens[list[1].From].m_vContent);
			stringBuilder.Append(" ");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx));
			stringBuilder.Append(" TO ");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[4], 0, -1, ctx));
			return stringBuilder.ToString();
		}

		public static object Process_IntervalYearToMonth_INTERVAL_StringLiteral_IntervalYearToMonth_IntervalYearToMonth_TO_IntervalYearToMonth_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append("INTERVAL ");
			stringBuilder.Append(ctx.Tokens[list[1].From].m_vContent);
			stringBuilder.Append(" ");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx));
			stringBuilder.Append(" ");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[3], 0, -1, ctx));
			stringBuilder.Append(" TO ");
			stringBuilder.Append(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[5], 0, -1, ctx));
			return stringBuilder.ToString();
		}

		public static object Process_IntervalYearToMonth_GetIdentifier_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return ctx.Tokens[ctx.CurrentParseNode.From].m_vContent;
		}

		public static object Process_IntervalYearToMonth_LEFT_PARENTHESIS_Digits_RIGHT_PARENTHESIS_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			StringBuilder stringBuilder = new StringBuilder();
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			stringBuilder.Append("(");
			stringBuilder.Append(ctx.Tokens[list[1].From].m_vContent);
			stringBuilder.Append(")");
			return stringBuilder.ToString();
		}
	}
}
